/**
 * 不动笔墨不读书系列
 * 继续打探理解系统安全 保护重要资产
 * 
 * linux密码登陆过程
 * 常见的用户验证方法有 用户名密码登陆和证书登陆
 * 密码验证方法 对比以下输入与预设是否匹配
 * 使用单向散列算法，这样即使散列后的密码被泄漏，攻击者也需要可观的算力才能得到原始的明文密码
 * 
 * crypt 用于计算密码散列值的函数
 * char *crypt(const char *key,const char *salt);
 * key 输入的密码字符串 salt盐值 字符串
 * crypt的返回结果是放在一块静态分配的内存区，所以不能同时在多个线程中执行
 * 
 * Linux对用户敏感信息的保护
 * 访问权限
 * 账号密码保存存在访问权限
 * passwd文件有权限读没权限改，root有权限更改
 * shadow没权限做
 * 
 * Set-User-ID程序
 * 文件权限控制是一道屏障 
 * ***/